function type(target) {
    var ret = typeof (target);
    var template = {
        '[Object Array]': 'array',
        '[Object Object]': 'object',
        '[Object Number]': 'number-object',
        '[Object Boolean]': 'boolean-object',
        '[Object String]': 'string-object',
    }
    if (target === null) {
        return null;
    } else if (ret == 'object') {
        var str = Object.prototype.toString.call(target)
        return template[str];
    } else {
        return ret;
    }
}